/*
   Copyright (c) 2000-2012, by Zhuo Meng (zxm8@case.edu).
   All rights reserved.

   Distributed under the terms of the GNU Lesser General Public License as
   published by the Free Software Foundation; either version 2 of the
   License, or (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/
static short int yearfrom = 1900, yearto = 2100;

static double jdbase = 2415021.0;

static int allterms[] = {
5, 19, 34, 49, 64, 79, 94, 109,
125, 140, 156, 172, 187, 203, 219, 234,
250, 265, 281, 296, 311, 326, 340, 355,
370, 385, 399, 414, 429, 444, 459, 475,
490, 506, 521, 537, 553, 568, 584, 600,
615, 631, 646, 661, 676, 691, 706, 720,
735, 750, 765, 779, 794, 809, 825, 840,
855, 871, 887, 902, 918, 934, 949, 965,
980, 996, 1011, 1026, 1041, 1056, 1071, 1086,
1100, 1115, 1130, 1145, 1160, 1175, 1190, 1205,
1221, 1236, 1252, 1267, 1283, 1299, 1315, 1330,
1346, 1361, 1376, 1391, 1406, 1421, 1436, 1451,
1466, 1480, 1495, 1510, 1525, 1540, 1555, 1570,
1586, 1601, 1617, 1633, 1648, 1664, 1680, 1695,
1711, 1726, 1742, 1757, 1772, 1787, 1801, 1816,
1831, 1846, 1860, 1875, 1890, 1905, 1920, 1936,
1951, 1967, 1982, 1998, 2014, 2029, 2045, 2061,
2076, 2092, 2107, 2122, 2137, 2152, 2167, 2181,
2196, 2211, 2226, 2240, 2255, 2270, 2286, 2301,
2316, 2332, 2347, 2363, 2379, 2395, 2410, 2426,
2441, 2457, 2472, 2487, 2502, 2517, 2532, 2547,
2561, 2576, 2591, 2606, 2621, 2636, 2651, 2666,
2682, 2697, 2713, 2728, 2744, 2760, 2776, 2791,
2807, 2822, 2837, 2852, 2867, 2882, 2897, 2912,
2927, 2941, 2956, 2971, 2986, 3001, 3016, 3031,
3047, 3062, 3078, 3094, 3109, 3125, 3141, 3156,
3172, 3187, 3203, 3218, 3233, 3248, 3262, 3277,
3292, 3306, 3321, 3336, 3351, 3366, 3381, 3397,
3412, 3428, 3443, 3459, 3475, 3490, 3506, 3522,
3537, 3553, 3568, 3583, 3598, 3613, 3628, 3642,
3657, 3672, 3687, 3701, 3716, 3731, 3747, 3762,
3777, 3793, 3808, 3824, 3840, 3856, 3871, 3887,
3902, 3918, 3933, 3948, 3963, 3978, 3993, 4008,
4022, 4037, 4052, 4067, 4082, 4097, 4112, 4127,
4142, 4158, 4174, 4189, 4205, 4221, 4237, 4252,
4268, 4283, 4298, 4313, 4328, 4343, 4358, 4373,
4387, 4402, 4417, 4432, 4447, 4462, 4477, 4492,
4508, 4523, 4539, 4555, 4570, 4586, 4602, 4617,
4633, 4648, 4663, 4679, 4694, 4708, 4723, 4738,
4753, 4767, 4782, 4797, 4812, 4827, 4842, 4858,
4873, 4889, 4904, 4920, 4936, 4951, 4967, 4983,
4998, 5013, 5029, 5044, 5059, 5074, 5089, 5103,
5118, 5133, 5147, 5162, 5177, 5192, 5207, 5223,
5238, 5254, 5269, 5285, 5301, 5317, 5332, 5348,
5363, 5379, 5394, 5409, 5424, 5439, 5454, 5469,
5483, 5498, 5513, 5528, 5542, 5558, 5573, 5588,
5603, 5619, 5635, 5650, 5666, 5682, 5697, 5713,
5729, 5744, 5759, 5774, 5789, 5804, 5819, 5834,
5848, 5863, 5878, 5893, 5908, 5923, 5938, 5953,
5969, 5984, 6000, 6016, 6031, 6047, 6063, 6078,
6094, 6109, 6124, 6140, 6155, 6169, 6184, 6199,
6214, 6228, 6243, 6258, 6273, 6288, 6303, 6319,
6334, 6349, 6365, 6381, 6397, 6412, 6428, 6444,
6459, 6474, 6490, 6505, 6520, 6535, 6549, 6564,
6579, 6594, 6608, 6623, 6638, 6653, 6668, 6684,
6699, 6715, 6730, 6746, 6762, 6778, 6793, 6809,
6824, 6840, 6855, 6870, 6885, 6900, 6915, 6929,
6944, 6959, 6974, 6989, 7003, 7019, 7034, 7049,
7064, 7080, 7096, 7111, 7127, 7143, 7158, 7174,
7190, 7205, 7220, 7235, 7250, 7265, 7280, 7295,
7309, 7324, 7339, 7354, 7369, 7384, 7399, 7414,
7430, 7445, 7461, 7477, 7492, 7508, 7524, 7539,
7555, 7570, 7585, 7601, 7616, 7630, 7645, 7660,
7675, 7689, 7704, 7719, 7734, 7749, 7764, 7779,
7795, 7810, 7826, 7842, 7858, 7873, 7889, 7905,
7920, 7935, 7951, 7966, 7981, 7996, 8010, 8025,
8040, 8055, 8069, 8084, 8099, 8114, 8129, 8145,
8160, 8176, 8191, 8207, 8223, 8239, 8254, 8270,
8285, 8301, 8316, 8331, 8346, 8361, 8376, 8390,
8405, 8420, 8435, 8449, 8464, 8479, 8495, 8510,
8525, 8541, 8557, 8572, 8588, 8604, 8619, 8635,
8651, 8666, 8681, 8696, 8711, 8726, 8741, 8756,
8770, 8785, 8800, 8815, 8830, 8845, 8860, 8875,
8891, 8906, 8922, 8938, 8953, 8969, 8985, 9000,
9016, 9031, 9046, 9062, 9077, 9091, 9106, 9121,
9136, 9150, 9165, 9180, 9195, 9210, 9225, 9240,
9256, 9271, 9287, 9303, 9319, 9334, 9350, 9366,
9381, 9396, 9412, 9427, 9442, 9457, 9471, 9486,
9501, 9516, 9530, 9545, 9560, 9575, 9590, 9606,
9621, 9637, 9652, 9668, 9684, 9699, 9715, 9731,
9746, 9762, 9777, 9792, 9807, 9822, 9837, 9851,
9866, 9881, 9896, 9910, 9925, 9940, 9956, 9971,
9986, 10002, 10018, 10033, 10049, 10065, 10080, 10096,
10111, 10127, 10142, 10157, 10172, 10187, 10202, 10217,
10231, 10246, 10261, 10276, 10291, 10306, 10321, 10336,
10352, 10367, 10383, 10399, 10414, 10430, 10446, 10461,
10477, 10492, 10507, 10522, 10537, 10552, 10567, 10582,
10597, 10611, 10626, 10641, 10656, 10671, 10686, 10701,
10717, 10732, 10748, 10764, 10779, 10795, 10811, 10826,
10842, 10857, 10873, 10888, 10903, 10918, 10932, 10947,
10962, 10977, 10991, 11006, 11021, 11036, 11051, 11067,
11082, 11098, 11113, 11129, 11145, 11160, 11176, 11192,
11207, 11223, 11238, 11253, 11268, 11283, 11298, 11312,
11327, 11342, 11357, 11371, 11386, 11401, 11417, 11432,
11447, 11463, 11479, 11494, 11510, 11526, 11541, 11557,
11572, 11588, 11603, 11618, 11633, 11648, 11663, 11678,
11692, 11707, 11722, 11737, 11752, 11767, 11782, 11797,
11813, 11828, 11844, 11859, 11875, 11891, 11907, 11922,
11938, 11953, 11968, 11983, 11998, 12013, 12028, 12043,
12058, 12072, 12087, 12102, 12117, 12132, 12147, 12162,
12178, 12193, 12209, 12225, 12240, 12256, 12272, 12287,
12303, 12318, 12334, 12349, 12364, 12379, 12393, 12408,
12423, 12438, 12452, 12467, 12482, 12497, 12512, 12528,
12543, 12559, 12574, 12590, 12606, 12621, 12637, 12653,
12668, 12684, 12699, 12714, 12729, 12744, 12759, 12773,
12788, 12803, 12818, 12832, 12847, 12862, 12878, 12893,
12908, 12924, 12939, 12955, 12971, 12987, 13002, 13018,
13033, 13049, 13064, 13079, 13094, 13109, 13124, 13139,
13153, 13168, 13183, 13198, 13213, 13228, 13243, 13258,
13274, 13289, 13305, 13320, 13336, 13352, 13368, 13383,
13399, 13414, 13429, 13444, 13459, 13474, 13489, 13504,
13519, 13533, 13548, 13563, 13578, 13593, 13608, 13623,
13639, 13654, 13670, 13686, 13701, 13717, 13733, 13748,
13764, 13779, 13795, 13810, 13825, 13840, 13854, 13869,
13884, 13899, 13913, 13928, 13943, 13958, 13973, 13989,
14004, 14020, 14035, 14051, 14067, 14082, 14098, 14114,
14129, 14145, 14160, 14175, 14190, 14205, 14220, 14234,
14249, 14264, 14279, 14293, 14308, 14323, 14339, 14354,
14369, 14385, 14400, 14416, 14432, 14448, 14463, 14479,
14494, 14510, 14525, 14540, 14555, 14570, 14585, 14600,
14614, 14629, 14644, 14659, 14674, 14689, 14704, 14719,
14735, 14750, 14766, 14781, 14797, 14813, 14829, 14844,
14860, 14875, 14890, 14905, 14920, 14935, 14950, 14965,
14980, 14994, 15009, 15024, 15039, 15054, 15069, 15084,
15100, 15115, 15131, 15147, 15162, 15178, 15194, 15209,
15225, 15240, 15256, 15271, 15286, 15301, 15315, 15330,
15345, 15360, 15374, 15389, 15404, 15419, 15434, 15450,
15465, 15481, 15496, 15512, 15528, 15543, 15559, 15575,
15590, 15606, 15621, 15636, 15651, 15666, 15681, 15695,
15710, 15725, 15740, 15754, 15769, 15784, 15800, 15815,
15830, 15846, 15861, 15877, 15893, 15909, 15924, 15940,
15955, 15971, 15986, 16001, 16016, 16031, 16046, 16061,
16075, 16090, 16105, 16120, 16135, 16150, 16165, 16180,
16195, 16211, 16227, 16242, 16258, 16274, 16290, 16305,
16321, 16336, 16351, 16366, 16381, 16396, 16411, 16426,
16441, 16455, 16470, 16485, 16500, 16515, 16530, 16545,
16561, 16576, 16592, 16608, 16623, 16639, 16655, 16670,
16686, 16701, 16716, 16732, 16747, 16761, 16776, 16791,
16806, 16820, 16835, 16850, 16865, 16880, 16895, 16911,
16926, 16942, 16957, 16973, 16989, 17004, 17020, 17036,
17051, 17066, 17082, 17097, 17112, 17127, 17142, 17156,
17171, 17186, 17200, 17215, 17230, 17245, 17260, 17276,
17291, 17307, 17322, 17338, 17354, 17370, 17385, 17401,
17416, 17432, 17447, 17462, 17477, 17492, 17507, 17522,
17536, 17551, 17566, 17581, 17595, 17611, 17626, 17641,
17656, 17672, 17688, 17703, 17719, 17735, 17750, 17766,
17782, 17797, 17812, 17827, 17842, 17857, 17872, 17887,
17901, 17916, 17931, 17946, 17961, 17976, 17991, 18006,
18022, 18037, 18053, 18069, 18084, 18100, 18116, 18131,
18147, 18162, 18177, 18193, 18208, 18222, 18237, 18252,
18267, 18281, 18296, 18311, 18326, 18341, 18356, 18371,
18387, 18402, 18418, 18434, 18450, 18465, 18481, 18497,
18512, 18527, 18543, 18558, 18573, 18588, 18603, 18617,
18632, 18647, 18661, 18676, 18691, 18706, 18721, 18737,
18752, 18768, 18783, 18799, 18815, 18831, 18846, 18862,
18877, 18893, 18908, 18923, 18938, 18953, 18968, 18983,
18997, 19012, 19027, 19042, 19056, 19072, 19087, 19102,
19117, 19133, 19149, 19164, 19180, 19196, 19211, 19227,
19243, 19258, 19273, 19288, 19303, 19318, 19333, 19348,
19362, 19377, 19392, 19407, 19422, 19437, 19452, 19467,
19483, 19498, 19514, 19530, 19545, 19561, 19577, 19592,
19608, 19623, 19638, 19654, 19669, 19683, 19698, 19713,
19728, 19742, 19757, 19772, 19787, 19802, 19817, 19832,
19848, 19863, 19879, 19895, 19911, 19926, 19942, 19958,
19973, 19988, 20004, 20019, 20034, 20049, 20063, 20078,
20093, 20108, 20122, 20137, 20152, 20167, 20182, 20198,
20213, 20229, 20244, 20260, 20276, 20291, 20307, 20323,
20338, 20354, 20369, 20384, 20399, 20414, 20429, 20443,
20458, 20473, 20488, 20503, 20517, 20532, 20548, 20563,
20578, 20594, 20610, 20625, 20641, 20657, 20672, 20688,
20704, 20719, 20734, 20749, 20764, 20779, 20794, 20809,
20823, 20838, 20853, 20868, 20883, 20898, 20913, 20928,
20944, 20959, 20975, 20991, 21006, 21022, 21038, 21053,
21069, 21084, 21099, 21115, 21130, 21144, 21159, 21174,
21189, 21203, 21218, 21233, 21248, 21263, 21278, 21293,
21309, 21324, 21340, 21356, 21371, 21387, 21403, 21418,
21434, 21449, 21465, 21480, 21495, 21510, 21524, 21539,
21554, 21569, 21583, 21598, 21613, 21628, 21643, 21659,
21674, 21690, 21705, 21721, 21737, 21752, 21768, 21784,
21799, 21815, 21830, 21845, 21860, 21875, 21890, 21904,
21919, 21934, 21949, 21963, 21978, 21993, 22009, 22024,
22039, 22055, 22071, 22086, 22102, 22118, 22133, 22149,
22164, 22180, 22195, 22210, 22225, 22240, 22255, 22270,
22284, 22299, 22314, 22329, 22344, 22359, 22374, 22389,
22405, 22420, 22436, 22451, 22467, 22483, 22499, 22514,
22530, 22545, 22560, 22575, 22590, 22605, 22620, 22635,
22650, 22664, 22679, 22694, 22709, 22724, 22739, 22754,
22770, 22785, 22801, 22817, 22832, 22848, 22864, 22879,
22895, 22910, 22926, 22941, 22956, 22971, 22985, 23000,
23015, 23030, 23044, 23059, 23074, 23089, 23104, 23120,
23135, 23151, 23166, 23182, 23198, 23213, 23229, 23245,
23260, 23276, 23291, 23306, 23321, 23336, 23351, 23365,
23380, 23395, 23410, 23424, 23439, 23454, 23470, 23485,
23500, 23516, 23532, 23547, 23563, 23579, 23594, 23610,
23625, 23641, 23656, 23671, 23686, 23701, 23716, 23731,
23745, 23760, 23775, 23790, 23805, 23820, 23835, 23850,
23866, 23881, 23897, 23912, 23928, 23944, 23960, 23975,
23991, 24006, 24021, 24036, 24051, 24066, 24081, 24096,
24111, 24125, 24140, 24155, 24170, 24185, 24200, 24215,
24231, 24246, 24262, 24278, 24293, 24309, 24325, 24340,
24356, 24371, 24387, 24402, 24417, 24432, 24446, 24461,
24476, 24491, 24505, 24520, 24535, 24550, 24565, 24581,
24596, 24612, 24627, 24643, 24659, 24674, 24690, 24706,
24721, 24737, 24752, 24767, 24782, 24797, 24812, 24826,
24841, 24856, 24871, 24885, 24900, 24915, 24931, 24946,
24961, 24977, 24992, 25008, 25024, 25040, 25055, 25071,
25086, 25102, 25117, 25132, 25147, 25162, 25177, 25192,
25206, 25221, 25236, 25251, 25266, 25281, 25296, 25311,
25327, 25342, 25358, 25373, 25389, 25405, 25421, 25436,
25452, 25467, 25482, 25497, 25512, 25527, 25542, 25557,
25572, 25586, 25601, 25616, 25631, 25646, 25661, 25676,
25692, 25707, 25723, 25739, 25754, 25770, 25786, 25801,
25817, 25832, 25848, 25863, 25878, 25893, 25907, 25922,
25937, 25952, 25966, 25981, 25996, 26011, 26026, 26042,
26057, 26073, 26088, 26104, 26120, 26135, 26151, 26167,
26182, 26198, 26213, 26228, 26243, 26258, 26273, 26287,
26302, 26317, 26332, 26346, 26361, 26376, 26392, 26407,
26422, 26438, 26453, 26469, 26485, 26501, 26516, 26532,
26547, 26563, 26578, 26593, 26608, 26623, 26638, 26653,
26667, 26682, 26697, 26712, 26727, 26742, 26757, 26772,
26787, 26803, 26819, 26834, 26850, 26866, 26882, 26897,
26913, 26928, 26943, 26958, 26973, 26988, 27003, 27018,
27033, 27047, 27062, 27077, 27092, 27107, 27122, 27137,
27153, 27168, 27184, 27200, 27215, 27231, 27247, 27262,
27278, 27293, 27309, 27324, 27339, 27354, 27368, 27383,
27398, 27413, 27427, 27442, 27457, 27472, 27487, 27503,
27518, 27534, 27549, 27565, 27581, 27596, 27612, 27628,
27643, 27658, 27674, 27689, 27704, 27719, 27734, 27748,
27763, 27778, 27793, 27807, 27822, 27837, 27852, 27868,
27883, 27899, 27914, 27930, 27946, 27962, 27977, 27993,
28008, 28024, 28039, 28054, 28069, 28084, 28099, 28114,
28128, 28143, 28158, 28173, 28188, 28203, 28218, 28233,
28248, 28264, 28280, 28295, 28311, 28327, 28342, 28358,
28374, 28389, 28404, 28419, 28434, 28449, 28464, 28479,
28494, 28508, 28523, 28538, 28553, 28568, 28583, 28598,
28614, 28629, 28645, 28661, 28676, 28692, 28708, 28723,
28739, 28754, 28769, 28785, 28800, 28815, 28829, 28844,
28859, 28873, 28888, 28903, 28918, 28933, 28948, 28964,
28979, 28994, 29010, 29026, 29042, 29057, 29073, 29089,
29104, 29119, 29135, 29150, 29165, 29180, 29195, 29209,
29224, 29239, 29254, 29268, 29283, 29298, 29313, 29329,
29344, 29360, 29375, 29391, 29407, 29423, 29438, 29454,
29469, 29485, 29500, 29515, 29530, 29545, 29560, 29575,
29589, 29604, 29619, 29634, 29649, 29664, 29679, 29694,
29709, 29725, 29741, 29756, 29772, 29788, 29803, 29819,
29835, 29850, 29865, 29880, 29895, 29910, 29925, 29940,
29955, 29969, 29984, 29999, 30014, 30029, 30044, 30059,
30075, 30090, 30106, 30122, 30137, 30153, 30169, 30184,
30200, 30215, 30230, 30246, 30261, 30275, 30290, 30305,
30320, 30334, 30349, 30364, 30379, 30394, 30409, 30424,
30440, 30455, 30471, 30487, 30503, 30518, 30534, 30550,
30565, 30580, 30596, 30611, 30626, 30641, 30656, 30670,
30685, 30700, 30714, 30729, 30744, 30759, 30774, 30790,
30805, 30821, 30836, 30852, 30868, 30883, 30899, 30915,
30930, 30946, 30961, 30976, 30991, 31006, 31021, 31036,
31050, 31065, 31080, 31095, 31109, 31125, 31140, 31155,
31170, 31186, 31202, 31217, 31233, 31249, 31264, 31280,
31296, 31311, 31326, 31341, 31356, 31371, 31386, 31401,
31415, 31430, 31445, 31460, 31475, 31490, 31505, 31520,
31536, 31551, 31567, 31583, 31598, 31614, 31630, 31645,
31661, 31676, 31691, 31707, 31722, 31736, 31751, 31766,
31781, 31795, 31810, 31825, 31840, 31855, 31870, 31885,
31901, 31916, 31932, 31948, 31963, 31979, 31995, 32011,
32026, 32041, 32057, 32072, 32087, 32102, 32116, 32131,
32146, 32161, 32175, 32190, 32205, 32220, 32235, 32251,
32266, 32282, 32297, 32313, 32329, 32344, 32360, 32376,
32391, 32407, 32422, 32437, 32452, 32467, 32482, 32496,
32511, 32526, 32541, 32556, 32570, 32585, 32601, 32616,
32631, 32647, 32663, 32678, 32694, 32710, 32725, 32741,
32756, 32772, 32787, 32802, 32817, 32832, 32847, 32862,
32876, 32891, 32906, 32921, 32936, 32951, 32966, 32981,
32997, 33012, 33028, 33043, 33059, 33075, 33091, 33106,
33122, 33137, 33152, 33168, 33183, 33197, 33212, 33227,
33242, 33256, 33271, 33286, 33301, 33316, 33331, 33346,
33362, 33377, 33393, 33409, 33424, 33440, 33456, 33471,
33487, 33502, 33518, 33533, 33548, 33563, 33577, 33592,
33607, 33622, 33636, 33651, 33666, 33681, 33696, 33712,
33727, 33743, 33758, 33774, 33790, 33805, 33821, 33837,
33852, 33868, 33883, 33898, 33913, 33928, 33943, 33957,
33972, 33987, 34002, 34016, 34031, 34046, 34062, 34077,
34092, 34108, 34124, 34139, 34155, 34171, 34186, 34202,
34217, 34233, 34248, 34263, 34278, 34293, 34308, 34323,
34337, 34352, 34367, 34382, 34397, 34412, 34427, 34442,
34458, 34473, 34489, 34504, 34520, 34536, 34552, 34567,
34583, 34598, 34613, 34628, 34643, 34658, 34673, 34688,
34703, 34717, 34732, 34747, 34762, 34777, 34792, 34807,
34823, 34838, 34854, 34870, 34885, 34901, 34917, 34932,
34948, 34963, 34979, 34994, 35009, 35024, 35038, 35053,
35068, 35083, 35097, 35112, 35127, 35142, 35157, 35173,
35188, 35204, 35219, 35235, 35251, 35266, 35282, 35298,
35313, 35329, 35344, 35359, 35374, 35389, 35404, 35418,
35433, 35448, 35463, 35477, 35492, 35507, 35523, 35538,
35553, 35569, 35584, 35600, 35616, 35632, 35647, 35663,
35678, 35694, 35709, 35724, 35739, 35754, 35769, 35784,
35798, 35813, 35828, 35843, 35858, 35873, 35888, 35903,
35919, 35934, 35950, 35965, 35981, 35997, 36013, 36028,
36044, 36059, 36074, 36089, 36104, 36119, 36134, 36149,
36164, 36178, 36193, 36208, 36223, 36238, 36253, 36268,
36284, 36299, 36315, 36331, 36346, 36362, 36378, 36393,
36409, 36424, 36440, 36455, 36470, 36485, 36499, 36514,
36529, 36544, 36558, 36573, 36588, 36603, 36618, 36634,
36649, 36665, 36680, 36696, 36712, 36727, 36743, 36759,
36774, 36790, 36805, 36820, 36835, 36850, 36865, 36879,
36894, 36909, 36924, 36938, 36953, 36968, 36984, 36999,
37014, 37030, 37045, 37061, 37077, 37093, 37108, 37124,
37139, 37155, 37170, 37185, 37200, 37215, 37230, 37245,
37259, 37274, 37289, 37304, 37319, 37334, 37349, 37364,
37380, 37395, 37411, 37426, 37442, 37458, 37474, 37489,
37505, 37520, 37535, 37550, 37565, 37580, 37595, 37610,
37625, 37639, 37654, 37669, 37684, 37699, 37714, 37729,
37745, 37760, 37776, 37792, 37807, 37823, 37839, 37854,
37870, 37885, 37901, 37916, 37931, 37946, 37960, 37975,
37990, 38005, 38019, 38034, 38049, 38064, 38079, 38095,
38110, 38126, 38141, 38157, 38173, 38188, 38204, 38220,
38235, 38251, 38266, 38281, 38296, 38311, 38326, 38340,
38355, 38370, 38385, 38399, 38414, 38429, 38445, 38460,
38475, 38491, 38506, 38522, 38538, 38554, 38569, 38585,
38600, 38616, 38631, 38646, 38661, 38676, 38691, 38706,
38720, 38735, 38750, 38765, 38780, 38795, 38810, 38825,
38840, 38856, 38872, 38887, 38903, 38919, 38934, 38950,
38966, 38981, 38996, 39011, 39026, 39041, 39056, 39071,
39086, 39100, 39115, 39130, 39145, 39160, 39175, 39190,
39206, 39221, 39237, 39253, 39268, 39284, 39300, 39315,
39331, 39346, 39362, 39377, 39392, 39407, 39421, 39436,
39451, 39466, 39480, 39495, 39510, 39525, 39540, 39556,
39571, 39587, 39602, 39618, 39634, 39649, 39665, 39681,
39696, 39711, 39727, 39742, 39757, 39772, 39787, 39801,
39816, 39831, 39846, 39860, 39875, 39890, 39905, 39921,
39936, 39952, 39967, 39983, 39999, 40015, 40030, 40046,
40061, 40077, 40092, 40107, 40122, 40137, 40152, 40167,
40181, 40196, 40211, 40226, 40241, 40256, 40271, 40286,
40301, 40317, 40333, 40348, 40364, 40380, 40395, 40411,
40427, 40442, 40457, 40472, 40487, 40502, 40517, 40532,
40547, 40561, 40576, 40591, 40606, 40621, 40636, 40651,
40667, 40682, 40698, 40714, 40729, 40745, 40761, 40776,
40792, 40807, 40822, 40838, 40853, 40868, 40882, 40897,
40912, 40927, 40941, 40956, 40971, 40986, 41001, 41017,
41032, 41047, 41063, 41079, 41095, 41110, 41126, 41142,
41157, 41172, 41188, 41203, 41218, 41233, 41248, 41262,
41277, 41292, 41307, 41321, 41336, 41351, 41366, 41382,
41397, 41413, 41428, 41444, 41460, 41475, 41491, 41507,
41522, 41538, 41553, 41568, 41583, 41598, 41613, 41628,
41642, 41657, 41672, 41687, 41702, 41717, 41732, 41747,
41762, 41778, 41794, 41809, 41825, 41841, 41856, 41872,
41888, 41903, 41918, 41933, 41948, 41963, 41978, 41993,
42008, 42022, 42037, 42052, 42067, 42082, 42097, 42112,
42128, 42143, 42159, 42175, 42190, 42206, 42222, 42237,
42253, 42268, 42283, 42299, 42314, 42328, 42343, 42358,
42373, 42387, 42402, 42417, 42432, 42447, 42462, 42477,
42493, 42508, 42524, 42540, 42556, 42571, 42587, 42603,
42618, 42633, 42649, 42664, 42679, 42694, 42709, 42723,
42738, 42753, 42767, 42782, 42797, 42812, 42827, 42843,
42858, 42874, 42889, 42905, 42921, 42936, 42952, 42968,
42983, 42999, 43014, 43029, 43044, 43059, 43074, 43089,
43103, 43118, 43133, 43148, 43162, 43178, 43193, 43208,
43223, 43239, 43255, 43270, 43286, 43302, 43317, 43333,
43349, 43364, 43379, 43394, 43409, 43424, 43439, 43454,
43468, 43483, 43498, 43513, 43528, 43543, 43558, 43573,
43589, 43604, 43620, 43635, 43651, 43667, 43683, 43698,
43714, 43729, 43744, 43760, 43775, 43789, 43804, 43819,
43834, 43848, 43863, 43878, 43893, 43908, 43923, 43938,
43954, 43969, 43985, 44001, 44016, 44032, 44048, 44063,
44079, 44094, 44110, 44125, 44140, 44155, 44170, 44184,
44199, 44214, 44228, 44243, 44258, 44273, 44288, 44304,
44319, 44335, 44350, 44366, 44382, 44397, 44413, 44429,
44444, 44460, 44475, 44490, 44505, 44520, 44535, 44549,
44564, 44579, 44594, 44609, 44623, 44638, 44654, 44669,
44684, 44700, 44716, 44731, 44747, 44763, 44778, 44794,
44809, 44825, 44840, 44855, 44870, 44885, 44900, 44915,
44929, 44944, 44959, 44974, 44989, 45004, 45019, 45034,
45050, 45065, 45081, 45096, 45112, 45128, 45144, 45159,
45175, 45190, 45205, 45221, 45236, 45250, 45265, 45280,
45295, 45309, 45324, 45339, 45354, 45369, 45384, 45399,
45415, 45430, 45446, 45462, 45477, 45493, 45509, 45524,
45540, 45555, 45571, 45586, 45601, 45616, 45630, 45645,
45660, 45675, 45689, 45704, 45719, 45734, 45749, 45765,
45780, 45796, 45811, 45827, 45843, 45858, 45874, 45890,
45905, 45921, 45936, 45951, 45966, 45981, 45996, 46010,
46025, 46040, 46055, 46069, 46084, 46099, 46115, 46130,
46145, 46161, 46176, 46192, 46208, 46224, 46239, 46255,
46270, 46286, 46301, 46316, 46331, 46346, 46361, 46376,
46390, 46405, 46420, 46435, 46450, 46465, 46480, 46495,
46511, 46526, 46542, 46557, 46573, 46589, 46605, 46620,
46636, 46651, 46666, 46681, 46696, 46711, 46726, 46741,
46756, 46770, 46785, 46800, 46815, 46830, 46845, 46860,
46876, 46891, 46907, 46923, 46938, 46954, 46970, 46985,
47001, 47016, 47032, 47047, 47062, 47077, 47091, 47106,
47121, 47136, 47150, 47165, 47180, 47195, 47210, 47226,
47241, 47257, 47272, 47288, 47304, 47319, 47335, 47351,
47366, 47382, 47397, 47412, 47427, 47442, 47457, 47471,
47486, 47501, 47516, 47530, 47545, 47560, 47576, 47591,
47606, 47622, 47637, 47653, 47669, 47685, 47700, 47716,
47731, 47747, 47762, 47777, 47792, 47807, 47822, 47837,
47851, 47866, 47881, 47896, 47911, 47926, 47941, 47956,
47972, 47987, 48003, 48018, 48034, 48050, 48066, 48081,
48097, 48112, 48127, 48142, 48157, 48172, 48187, 48202,
48217, 48231, 48246, 48261, 48276, 48291, 48306, 48321,
48337, 48352, 48368, 48384, 48399, 48415, 48431, 48446,
48462, 48477, 48493, 48508, 48523, 48538, 48552, 48567,
48582, 48597, 48611, 48626, 48641, 48656, 48671, 48687,
48702, 48718, 48733, 48749, 48765, 48780, 48796, 48812,
48827, 48843, 48858, 48873, 48888, 48903, 48918, 48932,
48947, 48962, 48977, 48991, 49006, 49021, 49037, 49052,
49067, 49083, 49098, 49114, 49130, 49146, 49161, 49177,
49192, 49208, 49223, 49238, 49253, 49268, 49283, 49298,
49312, 49327, 49342, 49357, 49372, 49387, 49402, 49417,
49432, 49448, 49464, 49479, 49495, 49511, 49526, 49542,
49558, 49573, 49588, 49603, 49618, 49633, 49648, 49663,
49678, 49692, 49707, 49722, 49737, 49752, 49767, 49782,
49798, 49813, 49829, 49845, 49860, 49876, 49892, 49907,
49923, 49938, 49954, 49969, 49984, 49999, 50013, 50028,
50043, 50058, 50072, 50087, 50102, 50117, 50132, 50148,
50163, 50179, 50194, 50210, 50226, 50241, 50257, 50273,
50288, 50304, 50319, 50334, 50349, 50364, 50379, 50393,
50408, 50423, 50438, 50452, 50467, 50482, 50498, 50513,
50528, 50544, 50559, 50575, 50591, 50607, 50622, 50638,
50653, 50669, 50684, 50699, 50714, 50729, 50744, 50759,
50773, 50788, 50803, 50818, 50833, 50848, 50863, 50878,
50893, 50909, 50925, 50940, 50956, 50972, 50987, 51003,
51019, 51034, 51049, 51064, 51079, 51094, 51109, 51124,
51139, 51153, 51168, 51183, 51198, 51213, 51228, 51243,
51259, 51274, 51290, 51306, 51321, 51337, 51353, 51368,
51384, 51399, 51415, 51430, 51445, 51460, 51474, 51489,
51504, 51519, 51533, 51548, 51563, 51578, 51593, 51609,
51624, 51639, 51655, 51671, 51687, 51702, 51718, 51734,
51749, 51764, 51780, 51795, 51810, 51825, 51840, 51854,
51869, 51884, 51899, 51913, 51928, 51943, 51958, 51974,
51989, 52005, 52020, 52036, 52052, 52068, 52083, 52099,
52114, 52130, 52145, 52160, 52175, 52190, 52205, 52220,
52234, 52249, 52264, 52279, 52294, 52309, 52324, 52339,
52354, 52370, 52386, 52401, 52417, 52433, 52448, 52464,
52480, 52495, 52510, 52525, 52540, 52555, 52570, 52585,
52600, 52614, 52629, 52644, 52659, 52674, 52689, 52704,
52720, 52735, 52751, 52767, 52782, 52798, 52814, 52829,
52845, 52860, 52875, 52891, 52906, 52921, 52935, 52950,
52965, 52980, 52994, 53009, 53024, 53039, 53054, 53069,
53085, 53100, 53116, 53132, 53148, 53163, 53179, 53195,
53210, 53225, 53241, 53256, 53271, 53286, 53301, 53315,
53330, 53345, 53360, 53374, 53389, 53404, 53419, 53435,
53450, 53466, 53481, 53497, 53513, 53528, 53544, 53560,
53575, 53591, 53606, 53621, 53636, 53651, 53666, 53681,
53695, 53710, 53725, 53740, 53755, 53770, 53785, 53800,
53815, 53831, 53847, 53862, 53878, 53894, 53909, 53925,
53941, 53956, 53971, 53986, 54001, 54016, 54031, 54046,
54061, 54075, 54090, 54105, 54120, 54135, 54150, 54165,
54181, 54196, 54212, 54227, 54243, 54259, 54275, 54290,
54306, 54321, 54336, 54352, 54367, 54381, 54396, 54411,
54426, 54440, 54455, 54470, 54485, 54500, 54515, 54530,
54546, 54561, 54577, 54593, 54608, 54624, 54640, 54655,
54671, 54686, 54702, 54717, 54732, 54747, 54762, 54776,
54791, 54806, 54820, 54835, 54850, 54865, 54880, 54896,
54911, 54927, 54942, 54958, 54974, 54989, 55005, 55021,
55036, 55052, 55067, 55082, 55097, 55112, 55127, 55142,
55156, 55171, 55186, 55201, 55215, 55230, 55246, 55261,
55276, 55292, 55308, 55323, 55339, 55355, 55370, 55386,
55401, 55417, 55432, 55447, 55462, 55477, 55492, 55507,
55521, 55536, 55551, 55566, 55581, 55596, 55611, 55626,
55642, 55657, 55673, 55688, 55704, 55720, 55736, 55751,
55767, 55782, 55797, 55813, 55828, 55842, 55857, 55872,
55887, 55901, 55916, 55931, 55946, 55961, 55976, 55991,
56007, 56022, 56038, 56054, 56069, 56085, 56101, 56116,
56132, 56147, 56163, 56178, 56193, 56208, 56223, 56237,
56252, 56267, 56281, 56296, 56311, 56326, 56341, 56357,
56372, 56388, 56403, 56419, 56435, 56450, 56466, 56482,
56497, 56513, 56528, 56543, 56558, 56573, 56588, 56603,
56617, 56632, 56647, 56662, 56676, 56691, 56707, 56722,
56737, 56753, 56768, 56784, 56800, 56816, 56831, 56847,
56862, 56878, 56893, 56908, 56923, 56938, 56953, 56968,
56982, 56997, 57012, 57027, 57042, 57057, 57072, 57087,
57103, 57118, 57134, 57149, 57165, 57181, 57197, 57212,
57228, 57243, 57258, 57274, 57289, 57303, 57318, 57333,
57348, 57362, 57377, 57392, 57407, 57422, 57437, 57452,
57468, 57483, 57499, 57515, 57530, 57546, 57562, 57577,
57593, 57608, 57624, 57639, 57654, 57669, 57683, 57698,
57713, 57728, 57742, 57757, 57772, 57787, 57802, 57818,
57833, 57849, 57864, 57880, 57896, 57911, 57927, 57943,
57958, 57974, 57989, 58004, 58019, 58034, 58049, 58063,
58078, 58093, 58108, 58123, 58137, 58152, 58168, 58183,
58198, 58214, 58229, 58245, 58261, 58277, 58292, 58308,
58323, 58339, 58354, 58369, 58384, 58399, 58414, 58429,
58443, 58458, 58473, 58488, 58503, 58518, 58533, 58548,
58564, 58579, 58595, 58610, 58626, 58642, 58658, 58673,
58689, 58704, 58719, 58734, 58749, 58764, 58779, 58794,
58809, 58823, 58838, 58853, 58868, 58883, 58898, 58913,
58929, 58944, 58960, 58976, 58991, 59007, 59023, 59038,
59054, 59069, 59085, 59100, 59115, 59130, 59144, 59159,
59174, 59189, 59203, 59218, 59233, 59248, 59263, 59279,
59294, 59310, 59325, 59341, 59357, 59372, 59388, 59404,
59419, 59435, 59450, 59465, 59480, 59495, 59510, 59524,
59539, 59554, 59569, 59583, 59598, 59613, 59629, 59644,
59659, 59675, 59690, 59706, 59722, 59738, 59753, 59769,
59784, 59800, 59815, 59830, 59845, 59860, 59875, 59890,
59904, 59919, 59934, 59949, 59964, 59979, 59994, 60009,
60025, 60040, 60056, 60071, 60087, 60103, 60119, 60134,
60150, 60165, 60180, 60195, 60210, 60225, 60240, 60255,
60270, 60284, 60299, 60314, 60329, 60344, 60359, 60374,
60390, 60405, 60421, 60437, 60452, 60468, 60484, 60499,
60515, 60530, 60546, 60561, 60576, 60591, 60605, 60620,
60635, 60650, 60664, 60679, 60694, 60709, 60724, 60740,
60755, 60771, 60786, 60802, 60818, 60833, 60849, 60865,
60880, 60896, 60911, 60926, 60941, 60956, 60971, 60985,
61000, 61015, 61030, 61044, 61059, 61074, 61090, 61105,
61120, 61136, 61151, 61167, 61183, 61199, 61214, 61230,
61245, 61261, 61276, 61291, 61306, 61321, 61336, 61351,
61365, 61380, 61395, 61410, 61425, 61440, 61455, 61470,
61485, 61501, 61517, 61532, 61548, 61564, 61579, 61595,
61611, 61626, 61641, 61656, 61671, 61686, 61701, 61716,
61731, 61745, 61760, 61775, 61790, 61805, 61820, 61835,
61851, 61866, 61882, 61898, 61913, 61929, 61945, 61960,
61976, 61991, 62007, 62022, 62037, 62052, 62066, 62081,
62096, 62111, 62125, 62140, 62155, 62170, 62185, 62201,
62216, 62231, 62247, 62263, 62279, 62294, 62310, 62326,
62341, 62356, 62372, 62387, 62402, 62417, 62432, 62446,
62461, 62476, 62491, 62505, 62520, 62535, 62551, 62566,
62581, 62597, 62612, 62628, 62644, 62660, 62675, 62691,
62706, 62722, 62737, 62752, 62767, 62782, 62797, 62812,
62826, 62841, 62856, 62871, 62886, 62901, 62916, 62931,
62946, 62962, 62978, 62993, 63009, 63025, 63040, 63056,
63072, 63087, 63102, 63117, 63132, 63147, 63162, 63177,
63192, 63206, 63221, 63236, 63251, 63266, 63281, 63296,
63312, 63327, 63343, 63359, 63374, 63390, 63406, 63421,
63437, 63452, 63467, 63483, 63498, 63513, 63527, 63542,
63557, 63572, 63586, 63601, 63616, 63631, 63646, 63662,
63677, 63692, 63708, 63724, 63740, 63755, 63771, 63787,
63802, 63817, 63833, 63848, 63863, 63878, 63893, 63907,
63922, 63937, 63952, 63966, 63981, 63996, 64011, 64027,
64042, 64058, 64073, 64089, 64105, 64120, 64136, 64152,
64167, 64183, 64198, 64213, 64228, 64243, 64258, 64273,
64287, 64302, 64317, 64332, 64347, 64362, 64377, 64392,
64407, 64423, 64439, 64454, 64470, 64486, 64501, 64517,
64533, 64548, 64563, 64578, 64593, 64608, 64623, 64638,
64653, 64667, 64682, 64697, 64712, 64727, 64742, 64757,
64773, 64788, 64804, 64820, 64835, 64851, 64867, 64882,
64898, 64913, 64928, 64944, 64959, 64974, 64988, 65003,
65018, 65033, 65047, 65062, 65077, 65092, 65107, 65122,
65138, 65153, 65169, 65185, 65200, 65216, 65232, 65248,
65263, 65278, 65294, 65309, 65324, 65339, 65354, 65368,
65383, 65398, 65413, 65427, 65442, 65457, 65472, 65488,
65503, 65519, 65534, 65550, 65566, 65581, 65597, 65613,
65628, 65644, 65659, 65674, 65689, 65704, 65719, 65734,
65748, 65763, 65778, 65793, 65808, 65823, 65838, 65853,
65868, 65884, 65900, 65915, 65931, 65947, 65962, 65978,
65994, 66009, 66024, 66039, 66054, 66069, 66084, 66099,
66114, 66128, 66143, 66158, 66173, 66188, 66203, 66218,
66234, 66249, 66265, 66280, 66296, 66312, 66328, 66343,
66359, 66374, 66389, 66405, 66420, 66434, 66449, 66464,
66479, 66494, 66508, 66523, 66538, 66553, 66568, 66583,
66599, 66614, 66630, 66646, 66661, 66677, 66693, 66708,
66724, 66739, 66755, 66770, 66785, 66800, 66815, 66829,
66844, 66859, 66873, 66888, 66903, 66918, 66933, 66949,
66964, 66980, 66995, 67011, 67027, 67042, 67058, 67074,
67089, 67105, 67120, 67135, 67150, 67165, 67180, 67195,
67209, 67224, 67239, 67254, 67268, 67283, 67299, 67314,
67329, 67345, 67361, 67376, 67392, 67408, 67423, 67439,
67454, 67470, 67485, 67500, 67515, 67530, 67545, 67560,
67574, 67589, 67604, 67619, 67634, 67649, 67664, 67679,
67695, 67710, 67726, 67741, 67757, 67773, 67789, 67804,
67820, 67835, 67850, 67866, 67881, 67895, 67910, 67925,
67940, 67954, 67969, 67984, 67999, 68014, 68029, 68044,
68060, 68075, 68091, 68107, 68122, 68138, 68154, 68169,
68185, 68200, 68216, 68231, 68246, 68261, 68276, 68290,
68305, 68320, 68334, 68349, 68364, 68379, 68394, 68410,
68425, 68441, 68456, 68472, 68488, 68503, 68519, 68535,
68550, 68566, 68581, 68596, 68611, 68626, 68641, 68656,
68670, 68685, 68700, 68715, 68729, 68744, 68760, 68775,
68790, 68806, 68821, 68837, 68853, 68869, 68884, 68900,
68915, 68931, 68946, 68961, 68976, 68991, 69006, 69021,
69035, 69050, 69065, 69080, 69095, 69110, 69125, 69140,
69156, 69171, 69187, 69202, 69218, 69234, 69250, 69265,
69281, 69296, 69311, 69327, 69342, 69356, 69371, 69386,
69401, 69415, 69430, 69445, 69460, 69475, 69490, 69505,
69521, 69536, 69552, 69568, 69583, 69599, 69615, 69630,
69646, 69661, 69677, 69692, 69707, 69722, 69736, 69751,
69766, 69781, 69795, 69810, 69825, 69840, 69855, 69871,
69886, 69902, 69917, 69933, 69949, 69964, 69980, 69996,
70011, 70027, 70042, 70057, 70072, 70087, 70102, 70116,
70131, 70146, 70161, 70176, 70190, 70205, 70221, 70236,
70251, 70267, 70282, 70298, 70314, 70330, 70345, 70361,
70376, 70392, 70407, 70422, 70437, 70452, 70467, 70482,
70496, 70511, 70526, 70541, 70556, 70571, 70586, 70601,
70617, 70632, 70648, 70663, 70679, 70695, 70711, 70726,
70742, 70757, 70772, 70787, 70802, 70817, 70832, 70847,
70862, 70876, 70891, 70906, 70921, 70936, 70951, 70966,
70982, 70997, 71013, 71029, 71044, 71060, 71076, 71091,
71107, 71122, 71138, 71153, 71168, 71183, 71197, 71212,
71227, 71242, 71256, 71271, 71286, 71301, 71316, 71332,
71347, 71363, 71378, 71394, 71410, 71425, 71441, 71457,
71472, 71488, 71503, 71518, 71533, 71548, 71563, 71577,
71592, 71607, 71622, 71636, 71651, 71666, 71682, 71697,
71712, 71728, 71743, 71759, 71775, 71791, 71806, 71822,
71837, 71853, 71868, 71883, 71898, 71913, 71928, 71943,
71957, 71972, 71987, 72002, 72017, 72032, 72047, 72062,
72078, 72093, 72109, 72124, 72140, 72156, 72171, 72187,
72203, 72218, 72233, 72248, 72263, 72278, 72293, 72308,
72323, 72337, 72352, 72367, 72382, 72397, 72412, 72427,
72443, 72458, 72474, 72490, 72505, 72521, 72537, 72552,
72568, 72583, 72599, 72614, 72629, 72644, 72658, 72673,
72688, 72703, 72717, 72732, 72747, 72762, 72777, 72793,
72808, 72824, 72839, 72855, 72871, 72886, 72902, 72918,
72933, 72949, 72964, 72979, 72994, 73009, 73024, 73038,
73053, 73068, 73083, 73097, 73112, 73127, 73143, 73158,
73173, 73189, 73204, 73220, 73236, 73252, 73267, 73283,
73298, 73314, 73329, 73344, 73359, 73374, 73389, 73404
};

static int allmoons[] = {
-29, 0, 30, 59, 89, 118, 147, 177,
206, 236, 266, 295, 325, 355, 384, 414,
443, 473, 502, 531, 561, 590, 620, 649,
679, 709, 739, 768, 798, 827, 857, 886,
915, 945, 974, 1004, 1033, 1063, 1093, 1123,
1152, 1182, 1211, 1241, 1270, 1299, 1329, 1358,
1387, 1417, 1447, 1476, 1506, 1536, 1566, 1595,
1625, 1654, 1683, 1713, 1742, 1771, 1801, 1831,
1860, 1890, 1920, 1949, 1979, 2009, 2038, 2067,
2097, 2126, 2156, 2185, 2215, 2244, 2274, 2303,
2333, 2363, 2392, 2422, 2451, 2481, 2510, 2540,
2569, 2599, 2628, 2658, 2687, 2717, 2746, 2776,
2806, 2835, 2865, 2894, 2924, 2953, 2983, 3012,
3041, 3071, 3101, 3130, 3160, 3189, 3219, 3249,
3278, 3308, 3337, 3367, 3396, 3425, 3455, 3484,
3514, 3543, 3573, 3603, 3633, 3662, 3692, 3721,
3751, 3780, 3809, 3839, 3868, 3898, 3927, 3957,
3987, 4017, 4046, 4076, 4105, 4135, 4164, 4193,
4223, 4252, 4281, 4311, 4341, 4370, 4400, 4430,
4460, 4489, 4519, 4548, 4577, 4607, 4636, 4665,
4695, 4725, 4754, 4784, 4814, 4844, 4873, 4903,
4932, 4961, 4991, 5020, 5049, 5079, 5108, 5138,
5168, 5198, 5227, 5257, 5286, 5316, 5345, 5375,
5404, 5433, 5463, 5492, 5522, 5552, 5581, 5611,
5641, 5670, 5700, 5729, 5759, 5788, 5818, 5847,
5876, 5906, 5936, 5965, 5995, 6024, 6054, 6084,
6113, 6143, 6172, 6202, 6231, 6261, 6290, 6319,
6349, 6378, 6408, 6438, 6467, 6497, 6527, 6556,
6586, 6615, 6645, 6674, 6703, 6733, 6762, 6792,
6821, 6851, 6881, 6910, 6940, 6970, 6999, 7029,
7058, 7087, 7117, 7146, 7175, 7205, 7235, 7264,
7294, 7324, 7354, 7383, 7413, 7442, 7471, 7501,
7530, 7559, 7589, 7618, 7648, 7678, 7708, 7738,
7767, 7797, 7826, 7855, 7885, 7914, 7943, 7973,
8002, 8032, 8062, 8092, 8121, 8151, 8181, 8210,
8239, 8269, 8298, 8327, 8357, 8386, 8416, 8446,
8475, 8505, 8535, 8564, 8594, 8623, 8653, 8682,
8711, 8741, 8770, 8800, 8829, 8859, 8889, 8918,
8948, 8978, 9007, 9037, 9066, 9096, 9125, 9154,
9184, 9213, 9243, 9272, 9302, 9332, 9361, 9391,
9421, 9450, 9480, 9509, 9539, 9568, 9597, 9627,
9656, 9686, 9715, 9745, 9775, 9804, 9834, 9864,
9893, 9923, 9952, 9981, 10011, 10040, 10070, 10099,
10129, 10158, 10188, 10218, 10248, 10277, 10307, 10336,
10365, 10395, 10424, 10453, 10483, 10512, 10542, 10572,
10602, 10632, 10661, 10691, 10720, 10749, 10779, 10808,
10837, 10867, 10896, 10926, 10956, 10986, 11015, 11045,
11075, 11104, 11133, 11163, 11192, 11221, 11251, 11280,
11310, 11340, 11369, 11399, 11429, 11458, 11488, 11517,
11547, 11576, 11605, 11635, 11664, 11694, 11723, 11753,
11783, 11813, 11842, 11872, 11901, 11931, 11960, 11989,
12019, 12048, 12078, 12107, 12137, 12167, 12196, 12226,
12256, 12285, 12315, 12344, 12374, 12403, 12432, 12462,
12491, 12521, 12550, 12580, 12610, 12639, 12669, 12698,
12728, 12758, 12787, 12817, 12846, 12875, 12905, 12934,
12964, 12993, 13023, 13053, 13082, 13112, 13142, 13171,
13201, 13230, 13259, 13289, 13318, 13347, 13377, 13407,
13436, 13466, 13496, 13526, 13555, 13585, 13614, 13643,
13673, 13702, 13731, 13761, 13790, 13820, 13850, 13880,
13909, 13939, 13969, 13998, 14027, 14057, 14086, 14115,
14145, 14174, 14204, 14234, 14263, 14293, 14323, 14353,
14382, 14411, 14441, 14470, 14499, 14529, 14558, 14588,
14617, 14647, 14677, 14707, 14736, 14766, 14795, 14825,
14854, 14883, 14913, 14942, 14972, 15001, 15031, 15061,
15090, 15120, 15150, 15179, 15209, 15238, 15267, 15297,
15326, 15356, 15385, 15415, 15444, 15474, 15504, 15533,
15563, 15592, 15622, 15651, 15681, 15710, 15740, 15769,
15799, 15828, 15858, 15887, 15917, 15947, 15976, 16006,
16035, 16065, 16094, 16124, 16153, 16183, 16212, 16242,
16271, 16301, 16330, 16360, 16390, 16419, 16449, 16479,
16508, 16537, 16567, 16596, 16625, 16655, 16684, 16714,
16744, 16774, 16803, 16833, 16863, 16892, 16921, 16951,
16980, 17009, 17039, 17068, 17098, 17128, 17157, 17187,
17217, 17247, 17276, 17305, 17335, 17364, 17393, 17423,
17452, 17482, 17511, 17541, 17571, 17601, 17630, 17660,
17689, 17719, 17748, 17777, 17807, 17836, 17866, 17895,
17925, 17955, 17984, 18014, 18044, 18073, 18103, 18132,
18161, 18191, 18220, 18250, 18279, 18309, 18338, 18368,
18398, 18427, 18457, 18487, 18516, 18545, 18575, 18604,
18634, 18663, 18693, 18722, 18752, 18782, 18811, 18841,
18870, 18900, 18929, 18959, 18988, 19018, 19047, 19077,
19106, 19136, 19165, 19195, 19224, 19254, 19284, 19313,
19343, 19372, 19402, 19431, 19461, 19490, 19519, 19549,
19579, 19608, 19638, 19668, 19697, 19727, 19756, 19786,
19815, 19845, 19874, 19903, 19933, 19962, 19992, 20022,
20051, 20081, 20111, 20140, 20170, 20199, 20229, 20258,
20287, 20317, 20346, 20376, 20405, 20435, 20465, 20495,
20524, 20554, 20583, 20613, 20642, 20671, 20701, 20730,
20760, 20789, 20819, 20849, 20879, 20908, 20938, 20967,
20997, 21026, 21055, 21085, 21114, 21144, 21173, 21203,
21232, 21262, 21292, 21322, 21351, 21381, 21410, 21439,
21469, 21498, 21528, 21557, 21587, 21616, 21646, 21676,
21705, 21735, 21764, 21794, 21823, 21853, 21882, 21912,
21941, 21971, 22000, 22030, 22059, 22089, 22119, 22148,
22178, 22207, 22237, 22266, 22296, 22325, 22355, 22384,
22414, 22443, 22473, 22502, 22532, 22562, 22591, 22621,
22650, 22680, 22709, 22739, 22768, 22797, 22827, 22856,
22886, 22916, 22945, 22975, 23005, 23034, 23064, 23093,
23123, 23152, 23181, 23211, 23240, 23270, 23299, 23329,
23359, 23389, 23418, 23448, 23477, 23507, 23536, 23565,
23595, 23624, 23654, 23683, 23713, 23743, 23773, 23802,
23832, 23861, 23891, 23920, 23949, 23979, 24008, 24037,
24067, 24097, 24126, 24156, 24186, 24216, 24245, 24275,
24304, 24333, 24363, 24392, 24421, 24451, 24481, 24510,
24540, 24570, 24599, 24629, 24659, 24688, 24717, 24747,
24776, 24806, 24835, 24865, 24894, 24924, 24953, 24983,
25013, 25042, 25072, 25101, 25131, 25160, 25190, 25219,
25249, 25278, 25308, 25337, 25367, 25396, 25426, 25456,
25485, 25515, 25544, 25574, 25603, 25633, 25662, 25691,
25721, 25750, 25780, 25810, 25839, 25869, 25899, 25928,
25958, 25987, 26017, 26046, 26075, 26105, 26134, 26164,
26193, 26223, 26253, 26283, 26312, 26342, 26371, 26401,
26430, 26459, 26489, 26518, 26548, 26577, 26607, 26637,
26666, 26696, 26726, 26755, 26785, 26814, 26843, 26873,
26902, 26931, 26961, 26991, 27020, 27050, 27080, 27110,
27139, 27169, 27198, 27227, 27257, 27286, 27315, 27345,
27375, 27404, 27434, 27464, 27494, 27523, 27553, 27582,
27611, 27641, 27670, 27699, 27729, 27758, 27788, 27818,
27848, 27877, 27907, 27936, 27966, 27995, 28025, 28054,
28083, 28113, 28142, 28172, 28202, 28231, 28261, 28291,
28320, 28350, 28379, 28409, 28438, 28468, 28497, 28526,
28556, 28585, 28615, 28645, 28674, 28704, 28734, 28763,
28793, 28822, 28852, 28881, 28911, 28940, 28969, 28999,
29028, 29058, 29088, 29117, 29147, 29177, 29206, 29236,
29265, 29295, 29324, 29353, 29383, 29412, 29442, 29471,
29501, 29531, 29560, 29590, 29620, 29649, 29679, 29708,
29737, 29767, 29796, 29825, 29855, 29885, 29914, 29944,
29974, 30004, 30033, 30063, 30092, 30121, 30151, 30180,
30209, 30239, 30268, 30298, 30328, 30358, 30388, 30417,
30447, 30476, 30505, 30535, 30564, 30593, 30623, 30652,
30682, 30712, 30742, 30771, 30801, 30831, 30860, 30889,
30919, 30948, 30977, 31007, 31036, 31066, 31096, 31125,
31155, 31185, 31214, 31244, 31273, 31303, 31332, 31361,
31391, 31420, 31450, 31479, 31509, 31539, 31568, 31598,
31628, 31657, 31687, 31716, 31746, 31775, 31804, 31834,
31863, 31893, 31922, 31952, 31982, 32011, 32041, 32071,
32100, 32130, 32159, 32188, 32218, 32247, 32277, 32306,
32336, 32365, 32395, 32425, 32454, 32484, 32514, 32543,
32573, 32602, 32631, 32661, 32690, 32720, 32749, 32779,
32808, 32838, 32868, 32898, 32927, 32957, 32986, 33015,
33045, 33074, 33103, 33133, 33162, 33192, 33222, 33252,
33282, 33311, 33341, 33370, 33399, 33429, 33458, 33487,
33517, 33546, 33576, 33606, 33636, 33665, 33695, 33725,
33754, 33783, 33813, 33842, 33871, 33901, 33930, 33960,
33990, 34019, 34049, 34079, 34108, 34138, 34167, 34197,
34226, 34255, 34285, 34314, 34344, 34373, 34403, 34433,
34463, 34492, 34522, 34551, 34581, 34610, 34639, 34669,
34698, 34728, 34757, 34787, 34817, 34846, 34876, 34905,
34935, 34965, 34994, 35023, 35053, 35082, 35112, 35141,
35171, 35200, 35230, 35260, 35289, 35319, 35348, 35378,
35408, 35437, 35466, 35496, 35525, 35555, 35584, 35614,
35643, 35673, 35703, 35732, 35762, 35792, 35821, 35851,
35880, 35909, 35939, 35968, 35997, 36027, 36057, 36086,
36116, 36146, 36175, 36205, 36235, 36264, 36293, 36323,
36352, 36381, 36411, 36440, 36470, 36500, 36530, 36559,
36589, 36619, 36648, 36677, 36707, 36736, 36765, 36795,
36824, 36854, 36884, 36913, 36943, 36973, 37002, 37032,
37061, 37091, 37120, 37149, 37179, 37208, 37238, 37267,
37297, 37327, 37357, 37386, 37416, 37445, 37475, 37504,
37533, 37563, 37592, 37622, 37651, 37681, 37711, 37740,
37770, 37800, 37829, 37859, 37888, 37917, 37947, 37976,
38006, 38035, 38065, 38094, 38124, 38154, 38183, 38213,
38242, 38272, 38301, 38331, 38360, 38390, 38419, 38449,
38478, 38508, 38537, 38567, 38597, 38626, 38656, 38685,
38715, 38744, 38774, 38803, 38833, 38862, 38892, 38921,
38951, 38980, 39010, 39040, 39069, 39099, 39129, 39158,
39187, 39217, 39246, 39275, 39305, 39334, 39364, 39394,
39424, 39453, 39483, 39513, 39542, 39571, 39601, 39630,
39659, 39689, 39718, 39748, 39778, 39807, 39837, 39867,
39897, 39926, 39955, 39985, 40014, 40043, 40073, 40102,
40132, 40161, 40191, 40221, 40251, 40280, 40310, 40339,
40369, 40398, 40427, 40457, 40486, 40516, 40545, 40575,
40605, 40634, 40664, 40694, 40723, 40753, 40782, 40811,
40841, 40870, 40900, 40929, 40959, 40988, 41018, 41048,
41077, 41107, 41136, 41166, 41195, 41225, 41254, 41284,
41313, 41343, 41372, 41402, 41431, 41461, 41491, 41520,
41550, 41579, 41609, 41638, 41668, 41697, 41727, 41756,
41786, 41815, 41845, 41874, 41904, 41934, 41963, 41993,
42022, 42052, 42081, 42111, 42140, 42169, 42199, 42228,
42258, 42288, 42318, 42347, 42377, 42406, 42436, 42465,
42495, 42524, 42553, 42583, 42612, 42642, 42672, 42701,
42731, 42761, 42790, 42820, 42849, 42879, 42908, 42937,
42967, 42996, 43026, 43055, 43085, 43115, 43145, 43174,
43204, 43233, 43263, 43292, 43321, 43351, 43380, 43410,
43439, 43469, 43499, 43529, 43558, 43588, 43617, 43647,
43676, 43705, 43735, 43764, 43793, 43823, 43853, 43882,
43912, 43942, 43972, 44001, 44031, 44060, 44089, 44119,
44148, 44178, 44207, 44237, 44266, 44296, 44326, 44355,
44385, 44414, 44444, 44473, 44503, 44532, 44562, 44591,
44621, 44650, 44680, 44709, 44739, 44769, 44798, 44828,
44857, 44887, 44916, 44946, 44975, 45005, 45034, 45063,
45093, 45123, 45152, 45182, 45212, 45241, 45271, 45300,
45330, 45359, 45389, 45418, 45447, 45477, 45506, 45536,
45566, 45595, 45625, 45655, 45684, 45714, 45743, 45773,
45802, 45831, 45861, 45890, 45920, 45949, 45979, 46009,
46039, 46068, 46098, 46127, 46157, 46186, 46215, 46245,
46274, 46303, 46333, 46363, 46393, 46422, 46452, 46482,
46511, 46541, 46570, 46599, 46629, 46658, 46687, 46717,
46747, 46776, 46806, 46836, 46866, 46895, 46925, 46954,
46983, 47013, 47042, 47071, 47101, 47131, 47160, 47190,
47220, 47249, 47279, 47308, 47338, 47367, 47397, 47426,
47455, 47485, 47515, 47544, 47574, 47603, 47633, 47663,
47692, 47722, 47751, 47781, 47810, 47840, 47869, 47898,
47928, 47958, 47987, 48017, 48046, 48076, 48106, 48135,
48165, 48194, 48224, 48253, 48283, 48312, 48341, 48371,
48400, 48430, 48460, 48489, 48519, 48549, 48578, 48608,
48637, 48667, 48696, 48725, 48755, 48784, 48814, 48843,
48873, 48903, 48933, 48962, 48992, 49021, 49051, 49080,
49109, 49139, 49168, 49198, 49227, 49257, 49287, 49316,
49346, 49376, 49405, 49435, 49464, 49493, 49523, 49552,
49581, 49611, 49641, 49670, 49700, 49730, 49760, 49789,
49819, 49848, 49877, 49907, 49936, 49965, 49995, 50024,
50054, 50084, 50114, 50144, 50173, 50203, 50232, 50261,
50291, 50320, 50349, 50379, 50408, 50438, 50468, 50498,
50527, 50557, 50586, 50616, 50645, 50675, 50704, 50733,
50763, 50792, 50822, 50852, 50881, 50911, 50941, 50970,
51000, 51029, 51059, 51088, 51118, 51147, 51176, 51206,
51235, 51265, 51295, 51324, 51354, 51383, 51413, 51443,
51472, 51502, 51531, 51560, 51590, 51619, 51649, 51678,
51708, 51738, 51767, 51797, 51827, 51856, 51886, 51915,
51945, 51974, 52003, 52033, 52062, 52092, 52121, 52151,
52181, 52210, 52240, 52270, 52299, 52329, 52358, 52387,
52417, 52446, 52475, 52505, 52535, 52564, 52594, 52624,
52654, 52683, 52713, 52742, 52771, 52801, 52830, 52859,
52889, 52918, 52948, 52978, 53008, 53038, 53067, 53097,
53126, 53155, 53185, 53214, 53243, 53273, 53302, 53332,
53362, 53392, 53421, 53451, 53480, 53510, 53539, 53569,
53598, 53627, 53657, 53686, 53716, 53746, 53775, 53805,
53835, 53864, 53894, 53923, 53953, 53982, 54011, 54041,
54070, 54100, 54129, 54159, 54189, 54218, 54248, 54278,
54307, 54337, 54366, 54395, 54425, 54454, 54484, 54513,
54543, 54572, 54602, 54632, 54661, 54691, 54721, 54750,
54780, 54809, 54838, 54868, 54897, 54927, 54956, 54986,
55015, 55045, 55075, 55104, 55134, 55164, 55193, 55223,
55252, 55281, 55311, 55340, 55369, 55399, 55429, 55458,
55488, 55518, 55548, 55577, 55607, 55636, 55665, 55695,
55724, 55753, 55783, 55812, 55842, 55872, 55902, 55932,
55961, 55991, 56020, 56049, 56079, 56108, 56137, 56167,
56196, 56226, 56256, 56286, 56315, 56345, 56375, 56404,
56433, 56463, 56492, 56521, 56551, 56580, 56610, 56640,
56669, 56699, 56729, 56758, 56788, 56817, 56847, 56876,
56905, 56935, 56964, 56994, 57023, 57053, 57083, 57113,
57142, 57172, 57201, 57231, 57260, 57289, 57319, 57348,
57378, 57407, 57437, 57467, 57496, 57526, 57555, 57585,
57614, 57644, 57673, 57703, 57732, 57762, 57791, 57821,
57850, 57880, 57909, 57939, 57969, 57998, 58028, 58058,
58087, 58116, 58146, 58175, 58205, 58234, 58264, 58293,
58323, 58352, 58382, 58412, 58442, 58471, 58501, 58530,
58559, 58589, 58618, 58647, 58677, 58706, 58736, 58766,
58796, 58825, 58855, 58885, 58914, 58943, 58973, 59002,
59031, 59061, 59090, 59120, 59150, 59180, 59209, 59239,
59269, 59298, 59327, 59357, 59386, 59415, 59445, 59474,
59504, 59534, 59563, 59593, 59623, 59652, 59682, 59711,
59741, 59770, 59799, 59829, 59858, 59888, 59917, 59947,
59977, 60007, 60036, 60066, 60095, 60125, 60154, 60183,
60213, 60242, 60272, 60301, 60331, 60361, 60390, 60420,
60450, 60479, 60509, 60538, 60567, 60597, 60626, 60656,
60685, 60715, 60744, 60774, 60804, 60833, 60863, 60892,
60922, 60951, 60981, 61010, 61040, 61069, 61099, 61128,
61158, 61187, 61217, 61247, 61276, 61306, 61335, 61365,
61394, 61424, 61453, 61483, 61512, 61541, 61571, 61601,
61630, 61660, 61690, 61719, 61749, 61778, 61808, 61837,
61867, 61896, 61925, 61955, 61984, 62014, 62044, 62074,
62103, 62133, 62162, 62192, 62221, 62251, 62280, 62309,
62339, 62368, 62398, 62428, 62457, 62487, 62517, 62546,
62576, 62605, 62635, 62664, 62693, 62723, 62752, 62782,
62811, 62841, 62871, 62901, 62930, 62960, 62989, 63019,
63048, 63077, 63107, 63136, 63166, 63195, 63225, 63255,
63284, 63314, 63344, 63373, 63403, 63432, 63461, 63491,
63520, 63550, 63579, 63609, 63638, 63668, 63698, 63727,
63757, 63786, 63816, 63845, 63875, 63904, 63934, 63963,
63993, 64022, 64052, 64081, 64111, 64141, 64170, 64200,
64229, 64259, 64288, 64318, 64347, 64377, 64406, 64436,
64465, 64495, 64524, 64554, 64584, 64613, 64643, 64672,
64702, 64731, 64761, 64790, 64819, 64849, 64878, 64908,
64938, 64968, 64997, 65027, 65056, 65086, 65115, 65145,
65174, 65203, 65233, 65262, 65292, 65322, 65351, 65381,
65411, 65440, 65470, 65499, 65529, 65558, 65587, 65617,
65646, 65676, 65705, 65735, 65765, 65795, 65824, 65854,
65883, 65913, 65942, 65971, 66001, 66030, 66059, 66089,
66119, 66149, 66178, 66208, 66238, 66267, 66297, 66326,
66355, 66385, 66414, 66443, 66473, 66503, 66532, 66562,
66592, 66622, 66651, 66680, 66710, 66739, 66769, 66798,
66827, 66857, 66887, 66916, 66946, 66976, 67005, 67035,
67064, 67094, 67123, 67153, 67182, 67212, 67241, 67271,
67300, 67330, 67359, 67389, 67419, 67448, 67478, 67507,
67537, 67566, 67596, 67625, 67655, 67684, 67713, 67743,
67773, 67802, 67832, 67862, 67891, 67921, 67950, 67980,
68009, 68039, 68068, 68097, 68127, 68156, 68186, 68216,
68245, 68275, 68305, 68334, 68364, 68393, 68423, 68452,
68481, 68511, 68540, 68570, 68599, 68629, 68659, 68689,
68718, 68748, 68777, 68807, 68836, 68865, 68895, 68924,
68953, 68983, 69013, 69043, 69072, 69102, 69132, 69161,
69191, 69220, 69249, 69278, 69308, 69337, 69367, 69397,
69426, 69456, 69486, 69516, 69545, 69575, 69604, 69633,
69663, 69692, 69721, 69751, 69781, 69810, 69840, 69870,
69899, 69929, 69958, 69988, 70017, 70047, 70076, 70105,
70135, 70164, 70194, 70224, 70253, 70283, 70313, 70342,
70372, 70401, 70431, 70460, 70490, 70519, 70548, 70578,
70608, 70637, 70667, 70696, 70726, 70756, 70785, 70815,
70844, 70874, 70903, 70932, 70962, 70991, 71021, 71050,
71080, 71110, 71139, 71169, 71199, 71228, 71258, 71287,
71317, 71346, 71375, 71405, 71434, 71464, 71493, 71523,
71553, 71583, 71612, 71642, 71671, 71701, 71730, 71759,
71789, 71818, 71847, 71877, 71907, 71937, 71966, 71996,
72026, 72055, 72085, 72114, 72143, 72172, 72202, 72231,
72261, 72291, 72320, 72350, 72380, 72410, 72439, 72469,
72498, 72527, 72556, 72586, 72615, 72645, 72674, 72704,
72734, 72764, 72793, 72823, 72853, 72882, 72911, 72941,
72970, 72999, 73029, 73058, 73088, 73118, 73148, 73177,
73207, 73236, 73266, 73295, 73325, 73354, 73383, 73413,
73442
};

static double allmonth[] = {
11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 8.5, 9.0,
10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0,
10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0,
10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 5.5, 6.0, 7.0, 8.0,
9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0,
9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0,
9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 4.5, 5.0, 6.0, 7.0,
8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0,
8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0,
8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 2.5, 3.0, 4.0, 5.0, 6.0,
7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0,
7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0,
6.5, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0,
6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0,
6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0,
5.5, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0,
5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0,
5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 2.5, 3.0,
4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0,
4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0,
4.0, 5.0, 6.0, 7.0, 7.5, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0,
3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0,
3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0,
3.0, 4.0, 5.0, 5.5, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0,
2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0,
2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0,
2.0, 3.0, 4.0, 4.5, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0,
1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0,
1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0,
1.0, 2.0, 2.5, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0,
12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0,
12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 6.5, 7.0, 8.0, 9.0, 10.0,
11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0,
11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0,
11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 5.5, 6.0, 7.0, 8.0, 9.0,
10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0,
10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0,
10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 3.5, 4.0, 5.0, 6.0, 7.0, 8.0,
9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0,
9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 7.5,
8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0,
8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0,
8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 6.5,
7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0,
7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0,
7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 4.5, 5.0,
6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0,
6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0,
6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 2.5, 3.0, 4.0,
5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0,
5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0,
5.0, 6.0, 7.0, 7.5, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0,
4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0,
4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0,
4.0, 5.0, 5.5, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0,
3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0,
3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0,
3.0, 3.5, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0,
2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0,
2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 8.5, 9.0, 10.0, 11.0, 12.0,
1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0,
1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0,
1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 6.5, 7.0, 8.0, 9.0, 10.0, 11.0,
12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0,
12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0,
12.0, 1.0, 2.0, 3.0, 4.0, 4.5, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0,
11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0,
11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0,
11.0, 12.0, 1.0, 2.0, 3.0, 3.5, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0,
10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0,
10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 7.5, 8.0,
9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0,
9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0,
9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 5.5, 6.0, 7.0,
8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0,
8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0,
8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 4.5, 5.0, 6.0,
7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0,
7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0,
7.0, 8.0, 8.5, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0,
6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0,
6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0,
6.0, 6.5, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0,
5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0,
5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0,
4.5, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0,
4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0,
4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 10.5, 11.0, 12.0, 1.0, 2.0,
3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0,
3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0,
3.0, 4.0, 5.0, 6.0, 6.5, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0,
2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0,
2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0,
2.0, 3.0, 4.0, 5.0, 5.5, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0,
1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0,
1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0,
1.0, 2.0, 3.0, 3.5, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0,
12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0,
12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 8.5, 9.0, 10.0,
11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0,
11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0,
11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 5.5, 6.0, 7.0, 8.0, 9.0,
10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0,
10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0,
10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 4.5, 5.0, 6.0, 7.0, 8.0,
9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0,
9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0,
9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 2.5, 3.0, 4.0, 5.0, 6.0, 7.0,
8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0,
8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0,
7.5, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0,
7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0,
7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 5.5,
6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0,
6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0,
6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 4.5,
5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0,
5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0,
5.0, 6.0, 7.0, 8.0, 9.0, 9.5, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0,
4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0,
4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0,
4.0, 5.0, 6.0, 6.5, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0,
3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0,
3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0,
3.0, 4.0, 4.5, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0,
2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0,
2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0,
2.0, 2.5, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0,
1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0,
1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 6.5, 7.0, 8.0, 9.0, 10.0, 11.0,
12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0,
12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0,
12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 5.5, 6.0, 7.0, 8.0, 9.0, 10.0,
11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0,
11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0,
11.0, 12.0, 1.0, 2.0, 3.0, 3.5, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0,
10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0,
10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0,
10.0, 11.0, 11.5, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0,
9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0,
9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 6.5, 7.0,
8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0,
8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0,
8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 5.5, 6.0,
7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0,
7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0,
7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 2.5, 3.0, 4.0, 5.0,
6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0,
6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0,
6.0, 7.0, 7.5, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0,
5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0,
5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0,
5.0, 5.5, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0,
4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0,
4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0,
3.5, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0,
3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0,
3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 8.5, 9.0, 10.0, 11.0, 12.0, 1.0,
2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0,
2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0,
2.0, 3.0, 4.0, 5.0, 6.0, 6.5, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0,
1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0,
1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0,
1.0, 2.0, 3.0, 4.0, 4.5, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0,
12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0,
12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0,
12.0, 1.0, 2.0, 3.0, 3.5, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0,
11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0,
11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 7.5, 8.0, 9.0,
10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0,
10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0,
10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 5.5, 6.0, 7.0, 8.0,
9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0,
9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0,
9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 4.5, 5.0, 6.0, 7.0,
8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0,
8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0,
8.0, 8.5, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0,
7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0,
7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0,
6.5, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0,
6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0,
6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 4.5,
5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0,
5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0,
5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 3.5,
4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0,
4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0,
4.0, 5.0, 6.0, 7.0, 7.5, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0,
3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0,
3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0, 2.0,
3.0, 4.0, 5.0, 5.5, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0,
2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0,
2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 1.0,
2.0, 3.0, 4.0, 4.5, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0,
1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0,
1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 8.5, 9.0, 10.0, 11.0,
12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0,
12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0,
12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 6.5, 7.0, 8.0, 9.0, 10.0,
11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0,
11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0,
11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 4.5, 5.0, 6.0, 7.0, 8.0, 9.0,
10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0,
10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0,
10.0, 11.0, 12.0, 1.0, 2.0, 2.5, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0,
9.0, 10.0, 11.0, 12.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0,
9.0, 10.0, 11.0, 12.0, -1.0
};

#include "yearcache.h"
#include "novas.h"

bool
YearCache::IsInRange(short int year)
{
    return (year >= yearfrom && year <= yearto);
}

void
YearCache::GetYear(short int year, vdouble& vterms, double& lastnew,
    double& lastmon, vdouble& vmoons, vdouble& vmonth, double& nextnew)
{
    double tstart = julian_date(year, 1, 1, 0.0) - jdbase;
    double tend = julian_date(year + 1, 1, 1, 0.0) - jdbase;
    int yeardiff = year - yearfrom;
    int termidx = yeardiff * 24;
    vterms.erase(vterms.begin(), vterms.end());
    while (allterms[termidx] < tend)
    {
    	vterms.push_back(allterms[termidx] + jdbase);
    	termidx++;
    }
    int moonidx = yeardiff * 12 + yeardiff * 7 / 19 + 1;
    while (allmoons[moonidx - 1] > tstart)
        moonidx--;
    while (allmoons[moonidx] < tstart)
        moonidx++;
    lastnew = allmoons[moonidx - 1] + jdbase;
    lastmon = allmonth[moonidx - 1];
    vmoons.erase(vmoons.begin(), vmoons.end());
    vmonth.erase(vmonth.begin(), vmonth.end());
    while (allmoons[moonidx] < tend)
    {
        vmoons.push_back(allmoons[moonidx] + jdbase);
        vmonth.push_back(allmonth[moonidx]);
        moonidx++;
    }
    nextnew = allmoons[moonidx] + jdbase;
}
